package day01;

/**
 * 饿汉式 静态代码块
 * @Author chenyeqing
 * @Date 2021/6/24 23:28
 */
public class SingletonHungryStaticCodeBlock {
    /**
     * final 如果是 final static，那必须直接赋值或者在静态代码块赋值 -> 在类加载完成前赋值
     *       如果是 final，没有static，那必须在构造器，代码块，或者直接赋值 -> 在使用前赋值
     */
    private final static SingletonHungryStaticCodeBlock singleton;
    static {
        singleton = new SingletonHungryStaticCodeBlock();
        System.out.println("静态代码块运行了");
    }
    private SingletonHungryStaticCodeBlock() {}

    public static SingletonHungryStaticCodeBlock getSingleton() {
        return singleton;
    }

    /**
     * 测试输出
     * @return
     */
    public String out() {
        return "单例模式-饿汉式-静态代码块";
    }

}
